package com.zhengqing.softdemo.entity

import com.mybatisflex.annotation.Id
import com.mybatisflex.annotation.KeyType
import com.mybatisflex.annotation.Table
import lombok.AllArgsConstructor
import lombok.Builder
import lombok.Data
import lombok.NoArgsConstructor
import java.io.Serializable
import java.time.LocalDateTime

/**
 * 实体类。
 *
 * @author zql
 * @since 2024-04-25
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_soft")
class Soft : Serializable {
    @Id(keyType = KeyType.Auto)
    val id: Long? = null
    private val softName: String? = null
    private val softVersion: String? = null
    private val gitUrl: String? = null
    private val officialUrl: String? = null
    private val mainLanguage: String? = null
    private val languages: String? = null
    private val star: Int? = null
    private val uuid: String? = null
    private val softId: String? = null
    // Gson() 不支持 LocalDateTime
    // private val createdAt: LocalDateTime? = null
    // private val updatedAt: LocalDateTime? = null
    private val status: Int? = null
    private val isDeleted: Int? = null

    companion object {
        private const val serialVersionUID = 1L
    }
}